package me.raih.mapper;

import me.raih.pojo.po.Wares;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author Raih
 * @Time 2020/11/28  15:28
 *
 * 商品 哈哈
 */
@Mapper
@Repository
public interface WaresMapper {

    List<Wares> findAllWares();

    List<Wares> findWaresByPage(@Param("currentPage") int currentPage,
                                @Param("pageSize") int pageSize);

    int maxNumber();

    List<Wares> findWaresByPageAndName(@Param("currentPage") int currentPage,
                                       @Param("pageSize")int pageSize,
                                       @Param("name") String name,
                                       @Param("no") String no,
                                       @Param("modifyMan") String modifyMan,
                                       @Param("status") String status);

    List<Wares> findDelWaresByPageAndName(@Param("currentPage") int currentPage,
                                       @Param("pageSize")int pageSize);

    int maxDelNumber(@Param("currentPage") int currentPage,
                  @Param("pageSize")int pageSize);


    int maxNumber(@Param("name") String name,
                  @Param("no") String no,
                  @Param("modifyMan") String modifyMan,
                  @Param("status") String status);

    int addWaresByWares(Wares wares);

    Wares findWaresByNo(@Param("no") String no);


    int updateStatusByNo(@Param("no") String no,@Param("status") String status);

    int updateWares(Wares wares);

    /**
     * 通过这三个查找 大批商品信息
     * @param categoryNo 商品分类
     * @param currentPage  当前页
     * @param pageSize 页面大小
     * @return 商品集合
     */
    List<Wares> findWaresByCategoryNo(@Param("categoryNo")int categoryNo,
                                      @Param("currentPage")int currentPage,
                                      @Param("pageSize")int pageSize);

    int findMaxNumberByCategoryNo(@Param("categoryNo")int categoryNo);



    /**
     * 模糊查找商品信息，可能会有很多 需要分页
     * @param name 商品名称
     * @param currentPage 当前页
     * @param pageSize 每页商品数量
     * @return 商品集合
     */
    List<Wares> findWaresByWaresName(@Param("waresName")String name,
                                     @Param("currentPage")int currentPage,
                                     @Param("pageSize")int pageSize);

    int findMaxNumberByWaresName(@Param("waresName")String name);

    int addWaresByWaresForDelete(Wares wares);

    int deleteWares(@Param("no") String no);

    int findWaresNumber();

    int findTodayWaresNumber();

    int findYesterdayWaresNumber();

    int findCurrWeekWaresNumber();

    int findCurrMonthWaresNumber();

    Wares findDelWaresByNo(@Param("no") String no);

    int deleteDelWares(@Param("no") String no);
}
